package cn.com.dcsgo.service;

import cn.com.dcsgo.domain.ProdTag;
import cn.com.dcsgo.dto.PageDTO;
import cn.com.dcsgo.dto.ProdTagAddDTO;
import cn.com.dcsgo.dto.ProdTagQueryDTO;
import cn.com.dcsgo.dto.ProdTagUpdateDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 针对表【prod_tag(商品分组表)】的数据库操作Service
 *
 * @author Dcsgo
 * @since 2025-10-14 08:45:30
 */
public interface ProdTagService extends IService<ProdTag> {

    /**
     * 分页查询活动信息
     *
     * @param pageDTO         分页参数
     * @param prodTagQueryDTO 查询参数
     * @return 分页数据
     */
    Page<ProdTag> getProdTagPage(PageDTO pageDTO, ProdTagQueryDTO prodTagQueryDTO);

    /**
     * 添加活动
     *
     * @param prodTagAddDTO 活动信息
     * @return true-添加成功，false-添加失败
     */
    boolean save(ProdTagAddDTO prodTagAddDTO);

    /**
     * 更新活动
     *
     * @param prodTagUpdateDTO 活动信息
     * @return true-更新成功，false-更新失败
     */
    boolean update(ProdTagUpdateDTO prodTagUpdateDTO);

    /**
     * 删除活动，不允许删除状态为正常的活动
     *
     * @param id 活动ID
     * @return true-删除成功，false-删除失败
     */
    boolean carefulRemoveById(Long id);

    /**
     * 获取所有正常的活动信息
     *
     * @return 所有正常的活动信息，按排序数升序排序
     */
    List<ProdTag> getAllNormalProdTag();
}
